package cn.tedu.crm.project.controller;

import cn.tedu.crm.base.pojo.PageObject;
import cn.tedu.crm.base.response.JsonResult;
import cn.tedu.crm.project.pojo.dto.ProjectAuditParam;
import cn.tedu.crm.project.pojo.dto.ProjectQuery;
import cn.tedu.crm.project.pojo.vo.ProjectDetailVO;
import cn.tedu.crm.project.pojo.vo.ProjectVO;
import cn.tedu.crm.project.service.ProjectService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@Slf4j
@RestController
@RequestMapping("/api/crm/project")
public class ProjectController {
    @Autowired
    ProjectService projectService;

    // 分页查询工程信息
    // 根据查询参数传来的参数Field,查询不同字段的信息
    @GetMapping("loadList")
    public JsonResult<PageObject<ProjectVO>> loadList(ProjectQuery query){
        log.debug("查询工程项目信息:{}",query);
        PageObject<ProjectVO> pageObject = PageObject.page(
                query.getPageNum(), query.getPageSize(), () -> projectService.loadList(query));
        return JsonResult.success(pageObject);
    }

    // 查询工程详情信息
    // 根据订单ID查询工程详情信息
    @GetMapping("loadDetail")
    public JsonResult<ProjectDetailVO> loadDetail(Long id){
        log.debug("查询工程项目详情信息:{}",id);
        ProjectDetailVO projectDetailVO = projectService.loadDetail(id);
        return JsonResult.ok(projectDetailVO);
    }

    // 图纸审核提交
    // 需要的参数: 订单ID,图纸ID,图纸审核状态,若为零则为不合格,为1则合格,图纸不合格原因
    // 参数示例: {
    //  "auditParams": [
    //    {
    //      "id": 5, (这个是图纸id)
    //      "qualified": 0, (图纸审核状态)
    //      "unqualified": "" (图纸不合格原因,若合格则为空)
    //    }
    //  ],
    //  "id": 1  (这个是订单id)
    //}
    @PostMapping("submitAudit")
    public JsonResult submitAudit(@RequestBody ProjectAuditParam param){
        log.debug("提交审核信息:{}",param);
        projectService.submitAudit(param);
        return JsonResult.ok();
    }
}
